//
//  AppDelegate.swift
//  HMWeibo08
//
//  Created by 唐万超 on 15/7/28.
//  Copyright © 2015年 唐万超. All rights reserved.
//

import UIKit

let HMRootViewSwitchNotification = "HMRootViewSwitchNotification"

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?


    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        
        // 注册通知
        NSNotificationCenter.defaultCenter().addObserver(self, selector: "switchRootViewController:", name: HMRootViewSwitchNotification, object: nil)
        
        // 输出
        print(UserAccount.loadAccount())
        
        window = UIWindow(frame: UIScreen.mainScreen().bounds)
        
        window?.backgroundColor = UIColor.whiteColor()
        
       // window?.rootViewController = MainViewController()
         window?.rootViewController = defaultController()
        // 暂时显示新特性页面
        //window?.rootViewController = NewFeatureViewController()
        window?.makeKeyAndVisible()

        setAppearance()
        
        print(isNewVersion())
        
        return true
    }
    
    // 注销通知，只是一个习惯，不注销也可以
    deinit {
    
        NSNotificationCenter.defaultCenter().removeObserver(self)
    }
    
    func switchRootViewController(n: NSNotification) {
    
        //
        let mainVC = n.object as! Bool
        
        window?.rootViewController = mainVC ? MainViewController() : WelcomeViewController()
        
    }
    
    /// 返回默认启动的控制器
    func defaultController() -> UIViewController {
    
        // 1. 判断是否登录，如果没有登录返回主控制器
        if !UserAccount.userLogon {
            
            return MainViewController()
        }
        
        // 2. 判断是否有版本号，有就显示新特性，没有就显示欢迎
       return isNewVersion() ? NewFeatureViewController() : WelcomeViewController()
    }
    
    /// 判断是否是新版本
   private func isNewVersion() -> Bool {
    
//        // 获取当前版本号
//        let currentVersion = Double(NSBundle.mainBundle().infoDictionary!["CFBundleShortVersionString"] as! String)
//        
//        // 获取之前版本号
//        let key = "oldVersion"
//        
//        let sandBoxVersion = NSUserDefaults.standardUserDefaults().doubleForKey(key)
//        
//        // 将当前版本好存入偏好
//        NSUserDefaults.standardUserDefaults().setDouble(currentVersion!, forKey: key)
//        
//        NSUserDefaults.standardUserDefaults().synchronize()
//        
//        return currentVersion > sandBoxVersion
    // 1. 获取程序当前的版本
    let currentVersion = Double(NSBundle.mainBundle().infoDictionary!["CFBundleShortVersionString"] as! String)!
    
    // 2. 获取程序`之前`的版本，偏好设置
    let sandboxVersionKey = "sandboxVersionKey"
    let sandboxVersion = NSUserDefaults.standardUserDefaults().doubleForKey(sandboxVersionKey)
    
    // 3. 将当前版本保存到偏好设置
    NSUserDefaults.standardUserDefaults().setDouble(currentVersion, forKey: sandboxVersionKey)
    // iOS 7.0 之后，就不需要同步了，iOS 6.0 之前，如果不同步不会第一时间写入沙盒
    NSUserDefaults.standardUserDefaults().synchronize()
    
    // 4. 返回比较结果
    return currentVersion > sandboxVersion
    }

    // 设置外观对象，一经设置，全局有效
   private func setAppearance() {
    
         UINavigationBar.appearance().tintColor = UIColor.orangeColor()
        
        // 可以把tabBar的设置颜色也写在这里
        UITabBar.appearance().tintColor = UIColor.orangeColor()
        
    }

}

